﻿namespace Black.SurfaceToolkit.Converters
{
    /// <summary>
    /// Représente un mode d'extrapolation.
    /// </summary>
    public enum ExtremityBehavior: byte
    {
        /// <summary>
        /// Extrapoler comme une fonction affine.
        /// </summary>
        Continue = 0x0000,
        /// <summary>
        /// Extrapoler en maintenant la valeur.
        /// </summary>
        Hold = 0x0001,
        /// <summary>
        /// Extrapoler en inversant la tendance (symétrie affine).
        /// </summary>
        Invert = 0x0002,
        /// <summary>
        /// Extrapoler en répétant le motif.
        /// </summary>
        Repeat = 0x0003,
        /// <summary>
        /// Extrapoler en répétant et inversant le motif.
        /// </summary>
        Period = 0x0004
    }


    /// <summary>
    /// Représente un mode de comparaison.
    /// </summary>
    public enum ComparerMode
    {
        /// <summary>
        /// Indique que les éléments sont par ordre croissant.
        /// </summary>
        Ascending,
        /// <summary>
        /// Indique que les éléments sont par ordre strictement croissant.
        /// </summary>
        StrictlyAscending,
        /// <summary>
        /// Indique que les éléments sont par ordre décroissant.
        /// </summary>
        Descending,
        /// <summary>
        /// Indique que les éléments sont par ordre strictement décroissant.
        /// </summary>
        StrictlyDescending,
        /// <summary>
        /// Indique que tous les éléments sont tous égaux.
        /// </summary>
        AllEqual,
        /// <summary>
        /// Indique qu'au moins deux éléments sont égaux.
        /// </summary>
        AnyEqual,
        /// <summary>
        /// Indique que tous les éléments sont différents.
        /// </summary>
        AllDifferent,
        /// <summary>
        /// Indique qu'au moins deux éléments sont différents.
        /// </summary>
        AnyDifferent
    }
}
